/*
* INSANE - Interactive Structural Analysis Environment
*
* Copyright (C) 2003-2005
* Universidade Federal de Minas Gerais
* Escola de Engenharia
* Departamento de Engenharia de Estruturas
* 
* Author's email :    insane@dees.ufmg.br
* Author's website :  http://www.dees.ufmg.br/insane
* 
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
* 
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
* 
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/
package br.ufmg.dees.insane.crossSection;


/**
*A class representing a CrossSection.<p>
*See FrameElement and AnalysisModel for information on how to choose the local axis.
*
*@author Fonseca, Flavio & Pitangueira, Roque
*@version 1.0
*@since September 2003
*/

public class RegCrossSection implements java.io.Serializable, CrossSection
{
	private static final long serialVersionUID = 1L;

	/** The label of this CrossSection. */
	protected String label;
	
	/** The area of this CrossSection. */
	protected double area;
	
	/** The moment of inertia about the local X axis of this CrossSection.
	* It is also known as the torsional moment of the CrossSection.*/
	protected double ix;
	
	/** The moment of inertia about the local Y axis of this CrossSection.*/
	protected double iy;
	
	/** The moment of inertia about the local Z axis of this CrossSection.*/
	protected double iz;
	
	/** The height of the rectangular CrossSection.<p>
	* It's is initialized with the value 1 to avoid problems when calculating the equivalent nodal force for temperature changes.
	*/
	protected double height = 1;
	
	/** The thickness of this CrossSection.*/
	protected double thickness;
	
//********************************************************************************
	
	/** Returns the label of this CrossSection.
	*@return The label of this CrossSection.
	*/
	public String getLabel()
	{
		return (label);
	}
	
	/** Sets the label of this CrossSection.
	*@param a The label of this CrossSection.
	*/
	public void setLabel(String a)
	{
		label = a;
	}
	
//********************************************************************************
	
	/** Returns the area of this CrossSection.
	*@return The area of this CrossSection.
	*/
	public double getArea()
	{
		return (area);
	}
	
	/** Sets the area of this CrossSection.
	*@param a The area of this CrossSection.
	*/
	public void setArea(double a)
	{
		area = a;
	}
	
//********************************************************************************
	
	/** Returns the moment of inertia about the local X axis of this CrossSection.
	*@return The moment of inertia about the local X axis of this CrossSection.
	*/
	public double getIx()
	{
		return (ix);
	}
	
	/** Sets the moment of inertia about the local X axis of this CrossSection.
	*@param a The moment of inertia about the local X axis of this CrossSection.
	*/
	public void setIx(double a)
	{
		ix = a;
	}
	
//********************************************************************************
	
	/** Returns the moment of inertia about the local Y axis of this CrossSection.
	*@return The moment of inertia about the local Y axis of this CrossSection.
	*/
	public double getIy()
	{
		return (iy);
	}
	
	/** Sets the moment of inertia about the local Y axis of this CrossSection.
	*@param a The moment of inertia about the local Y axis of this CrossSection.
	*/
	public void setIy(double a)
	{
		iy = a;
	}
	
//********************************************************************************
	
	/** Returns the moment of inertia about the local Z axis of this CrossSection.
	*@return The moment of inertia about the local Z axis of this CrossSection.
	*/
	public double getIz()
	{
		return (iz);
	}
	
	/** Sets the moment of inertia about the local Z axis of this CrossSection.
	*@param a The moment of inertia about the local Z axis of this CrossSection.
	*/
	public void setIz(double a)
	{
		iz = a;
	}
	
//********************************************************************************
	
	/** Returns the height of the rectangular CrossSection.
	*@return The height of the rectangular CrossSection.
	*/
	public double getHeight()
	{
		return (height);
	}
	
	/** Sets the height of the rectangular CrossSection.
	*@param a The height of the rectangular CrossSection.
	*/
	public void setHeight(double a)
	{
		height = a;
	}
	
//********************************************************************************
	
	/** Returns the thickness of this CrossSection.
	*@return The thickness of this CrossSection.
	*/
	public double getThickness()
	{
		return (thickness);
	}
	
	/** Sets the thickness of this CrossSection.
	*@param a The thickness of this CrossSection.
	*/
	public void setThickness(double a)
	{
		thickness = a;
	}
	
}
